package com.gimi.cloud.bbp.manage.service.sys;

import com.gimi.cloud.bbp.dto.sys.SysMasterDTO;
import com.gimi.cloud.bbp.manage.service.BaseService;

import java.util.Map;

/**
 * 后台管理员相关接口
 * @author wbj
 * @version 1.0
 * @Description
 * @create 2018-01-24
 **/
public interface SysMasterService extends BaseService<SysMasterDTO>{

    /**
     * 根据登录名获取管理员信息
     * @param dto
     * @param username 待获取的用户名
     * @return 获取结果
     * @throws Exception
     */
    SysMasterDTO queryMasterByUsername(SysMasterDTO dto,String username) throws  Exception;

    /**
     * 生成指定Master的登录Token并存储到redis中
     * @param masterDTO 待生成token的管理员信息
     * @return 获取的token信息
     */
    String createTokenAndSet2Redis(SysMasterDTO masterDTO);

    /**
     * 获取用户权限信息
     * @param sysMasterDTO
     * @param masterId 用户id
     * @return 查询结果  authMenus:授权菜单, permissions:按钮权限  serviceNames 授权服务名
     * @throws Exception
     */
    Map<String,Object> getMasterPermissions(SysMasterDTO sysMasterDTO, Integer masterId) throws Exception;

    /**
     * 根据用户id获取用户信息
     * @param sysMasterDTO
     * @param maId 用户Id
     * @return 获取结果
     * @throws Exception
     */
    SysMasterDTO findMasterById(SysMasterDTO sysMasterDTO,Integer maId) throws  Exception;

    /**
     * 用户绑定角色
     * @param dto
     * @param roIds
     * @return 绑定结果
     * @throws Exception
     */
    int bindRole(SysMasterDTO dto,String roIds) throws Exception;
}
